﻿namespace LogManager.Core.Services.Location
{
    using LogManager.Core.Models;
    using System;
    using System.Threading;
    using System.Threading.Tasks;

    public interface ILocationService
    {
        Task<SimpleServiceResult> CheckLocationDestinationAsync(ILocation location);

        Task<SimpleServiceResult> CheckLocationSourceAsync(ILocation location);

        Task CheckLocationsAccessAsync(
            IConfiguration configuration,
            CancellationToken cancelToken,
            IProgress<LocationArchivingProgress> LocationArchivingProgressHandler,
            IProgress<object> ItemFinished,
            bool searchFiles);

        Task<LogArchivingResult> LaunchArchivingAsync(
            IConfiguration configuration,
            CancellationToken ct,
            IProgress<LocationArchivingProgress> LocationArchivingProgressHandler,
            IProgress<object> ItemFinished,
            IProgress<LogFileArchivingProgress> logFileProgress);

    }
}
